共计 1251 个字符,预计需要花费 4 分钟才能阅读完成。
判断容器是否存在,并完成删除。主要是容器不存在的时候,删除语句不能导致构建失败。
name: Docker Image CI
on:
workflow_dispatch:
push:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ${{ secrets.DOCKER_REGISTRY }}
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}:latest
- name: executing remote ssh commands using ssh key
uses: appleboy/ssh-action@v1.0.0
env:
INPUT_DOCKER_CONTAINER_NAME: ${{ vars.DOCKER_CONTAINER_NAME }}
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }}
allenvs: true
script: |
docker pull ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}
if [ "$(docker ps -aq -f name=${INPUT_DOCKER_CONTAINER_NAME})" ]; then
docker rm -f ${INPUT_DOCKER_CONTAINER_NAME}
fi
docker run -dit --name ${INPUT_DOCKER_CONTAINER_NAME} \
--network zxyh \
-v /home/zxyh/applog/openapi/:/data/log \
-p 33000:6000 --restart always \
--env-file /home/zxyh/tcpush/prod.env \
-e APP_INSTANCE=Open \
${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}
正文完